很简单的几个概念, 其他还是OO.
request中获取参数
方法 |
说明 |
获得request中参数名name对应的值, 如果不存在该参数, 则返回Null – 注意: 名称大小写敏感 |
|
GetParameterNames |
返回一个枚举对象, 包含了所在request中的所有参数名, 如果request没有参数, 该方法返回一个空的枚举 |
GetParameterValues(String name) |
返回一个Sting[], 包含参数所对应的所有的值, 如果参数不存在,则返回Null. |
getParameterMap |
返回一个Map对象, 以参数名称为Key(String), 参数对应值为Value(类型String[]) |
getSession() |
获得当前Session |
Response中输出信息
方法 |
说明 |
setContentType(String type) |
声明返回数据的MIME类型 |
setCharacterEncoding(String charset) |
声明Response的编码 |
getWriter(); |
返回一个PrintWriter, 可通过该对象的print 或printlin方法向客户端发送字符串数据流 |
sendRedirect(String location) |
设置转向 – 转到某地址 |
方法 |
说明 |
getServletContext() |
获得Session所在的ServletContext对象 |
getAttribute(String name) |
返回该Session中name对应的Attribute对象, 如果没有则返回null |
getAttributeNames() |
返回一个枚举, 包括Seesion中所有的Attribut 对应的name, |
setAttribute(String name, Object value) |
在Session中加入Attribute |
invalidate() |
销毁Session |
方法 |
说明 |
getInitParameter(String name) |
返回一个String, 包含对应的初始化参数, 如果不存在则返回null, init参数可在web.xml中使用<context-param>设定 |
getInitParameterNames() |
返回由所有的init参数名称组成的枚举, 如果不存在任何init参数, 则返回空的枚举 |
getAttribute(String name) |
返回运行时设定相应的Attribute 对象, 如不存在则返回null |
getAttributeNames() |
返回一个枚举, 包含所有Attribute的name, 如果不存在任何Attribue, 则返回一个空的枚举 |
setAttribute(String name, Object object) |
在运行时增加Attribute |
removeAttribute(String name) |
删除对应name的Attribute |
Servlet通过IoC(Inversion of Control意为控制反转)将代码交给框架来执行. 因此只需要在Servlet类中扩展HttpServlet, 覆盖doGet, doPost等方法, 就可成功创建并执行一个Servlet. 在有客户Request时, 将由Service方法分析Request, 并交由对应方法处理, 如Get交由doGet方法处理.
Listener: Servlet中的listener类似于AS中的Event kind, 在Listener支持的事件 – 如Servlet初始化完毕, Session初始化, Request Destory,等, 在这些事件发生后, 将自动运行相应的方法(IoC)
如果需要Listener或Filter, 则在编写好相应的类之后, 加入到web.xml描述文件中.
Servlet 的数据层次:
1. ServletContext: Application初始化时会呼叫Listener contextInitialized(), 可以在该方法中获得或设定ServletContext生命周期内的数据. 如可以通过getInitParameter来获取web.xml中定义好的初始化参数, 也可以通过setAttribute方法设定Attribute, 这些Attribute将在整个Servlet生命周期内有效.
2. HttpSession: 当获得Session之后, 可以进行setAttribute等方法设定Session’的Attribute – 在该Session中有效
3. HttpRequest: 在doGet, doPost等方法中, 可以通过request. get Parameter(String name)等方法来获得request中的数据, 这些数据仅对当前的这个Request有效
web.xml中<context-param>与<init-param>的差别及各自的读取方式 <->
// Proudly powered by Apache, PHP, MySQL, WordPress, Bootstrap, etc,.